import { defineStore } from "pinia";
import { IFileTreeItem } from "../interface/FileTree";
import { ISearchToEditorResult } from "../interface";

/**
 * 将 Monaco Editor 的相关功能拆分成单独的 store，方便管理
 *  1. 特别是 文件树 点击文件,打开编辑器 FileTree ===> Monaco Editor
 *  2. 搜索组件结果,点击 打开编辑器 Search ====> Monaco Editor
 */
export const useEditorStore = defineStore("editorStore", {
  state: () => ({
    // 当前激活的文件 - 通过该字段实现 FileTree ==> Monaco Editor 的数据交互
    currentFile: <IFileTreeItem | null>null,
    // 当前从搜索结果打开文件 Search ==> Monaco Editor 的数据交互
    currentSearch: <ISearchToEditorResult | null>null,
  }),
  actions: {
    setCurrentFile(file: IFileTreeItem | null) {
      this.currentFile = file;
    },

    setCurrentSearch(result: ISearchToEditorResult | null) {
      this.currentSearch = result;
    },
  },
});
